return {
  "stevearc/conform.nvim",
  event = "BufWritePre", -- uncomment for format on save,
  -- dependencies = { "https://github.com/prettier/prettier" },
  opts = {
    formatters = { "clang_format" },
    formatters_by_ft = {
      lua = { "stylua" },
      javascript = { "prettier" },
      typescript = { "prettier" },
      javascriptreact = { "prettier" },
      typescriptreact = { "prettier" },
      svelte = { "prettier" },
      css = { "prettier" },
      html = { "prettier" },
      json = { "prettier" },
      yaml = { "prettier" },
      markdown = { "prettier" },
      graphql = { "prettier" },
      c = { "clang_format" },
      cpp = { "clang_format" },
      objc = { "clang_format" },
      objcpp = { "clang_format" },
      cuda = { "clang_format" },
      proto = { "clang_format" },
      python = { "autoflake" },
    },
    format_on_save = {
      -- These options will be passed to conform.format()
      timeout_ms = 500,
      lsp_fallback = true,
    },
  },
  config = function(_, opts)
    -- print(vim.inspect(context))
    -- formatters = {"clang-format"}
    print "loading conform"
    vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
    vim.api.nvim_create_autocmd("BufWritePre", {
      pattern = "*",
      callback = function(args)
        print "formatting"
        require("conform").format { bufnr = args.buf }
      end,
    })
    require("conform").setup(opts, function(message)
      print(message)
    end)
  end,
}
